package com.ibeeking.found.file.rest.service;

import com.ibeeking.found.file.service.common.dos.FileDO;
import com.ibeeking.found.file.service.common.param.DownloadFileParam;
import com.ibeeking.found.file.service.common.param.PreviewParam;
import com.ibeeking.found.file.service.common.param.UploadFileParam;
import com.ibeeking.found.file.service.common.vo.UploadFileVO;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

public interface IFiletransferService {

    UploadFileVO uploadFileSpeed(UploadFileParam param);

    void uploadFile(HttpServletRequest request, UploadFileParam param, Long userId);

    void downloadFile(HttpServletResponse httpServletResponse, DownloadFileParam downloadFile);

    void downloadUserFileList(HttpServletResponse httpServletResponse, String filePath, String fileName, List<Long> userFileIds);

    void previewFile(HttpServletResponse httpServletResponse, PreviewParam preview);

    void previewPictureFile(HttpServletResponse httpServletResponse, PreviewParam preview);

    void deleteFile(FileDO fileBean);

    Long selectStorageSizeByUserId(Long userId);
}
